package com.huarui.part.dao;

import java.util.List;
import java.util.Map;

import org.ewaf.framework.dao.IBaseDao;
import org.ewaf.framework.model.ListModel;

import com.huarui.inventory.model.Inventory;
import com.huarui.part.model.PartListModel;
import com.huarui.part.model.PartProperty;


public interface IPartPropertyDao extends IBaseDao {

	
	public List<PartProperty> getPartCategoryListModel();
	
	public PartProperty getPartPropertyByPartIdAndCompanyId(Integer partId,Integer companyId);
	
	public PartProperty getPartProBySourCode(String code,String source);
	public PartProperty getPartPropertyByPartId(Integer partId,Integer companyId);
	public PartProperty getPartPropertyByPartId(Integer partId,Integer companyId,boolean isLock);
	/**
	 * 根据复杂条件进行查询
	 * @param params 参数集合
	 * @return
	 */
	public List<PartProperty> getPartPropertyListByComplex(String[] params);
	
	@SuppressWarnings("unchecked")
	public List<PartProperty> getPartPropertyListByConditions(Map map);
	
	@SuppressWarnings("unchecked")
	public PartProperty getPartPropertyByConditions(Map map);
	

	@SuppressWarnings("unchecked")
	public List<PartProperty>  getPartPropertyByCompanyId(Map map);
	
	
	public int countByConditions(PartListModel partPropertyListModel);
	
	public boolean deletePartProperty(Integer companyId,Integer id);
	
	
	public boolean updatePartProperty(PartProperty partProperty);
	
	public void savePartProperty(PartProperty partProperty);
	
	
	
	public void batchUpdatePartProperty(List<PartProperty> partProperties);

	public void batchInsertPartProperty(List<PartProperty> partProperties);

	
	public List queryPartProperty(PartListModel lm);
	@SuppressWarnings("unchecked")
	public List<PartProperty> getPartAndPartPropertyByCondition(Map map);
	
	public List<PartProperty> lockPartPropertyByCompanyId(Integer companayId);
	
	public Integer getCountByCondition(Map<String, Object> map);
	public List<PartProperty> getListByCondition(Map<String, Object> map);
	public PartProperty getByCondition(Map<String, Object> map);
	public List<Map> getListMapByCondition(Map<String, Object> map);
	
	public List<Map> getCodeByCompanyIdWithPage(Map<String, Object> map);
}
